home *** CD-ROM | disk | FTP | other *** search
/ Internet E-Mail Workshop / Internet E-Mail Workshop.iso / referenc / vga_info / trident.txt < prev    next >
Text File  |  1994-01-18  |  14KB  |  357 lines

  1.   Trident SuperVGA
  2.  
  3.   Trident 8800BR   512k   Only 128K banks.
  4.           8800CS   512k   Has 64k banks and old/new mode
  5.           8900B    1MB
  6.           8900C    1MB
  7.           8900CL   2MB
  8.           8900D    2MB   Same as 8900CL, but with a few bug corrected
  9.           8900CXr
  10.           9200CXi
  11.           9000           Low component version 256K on chip
  12.           9000i          Low component count. 15/16 bit DAC on chip
  13.           GUI9420
  14.           LCD9100B
  15.           LCD9100
  16.           LX8200
  17.  
  18.  
  19. Support chips:
  20.  
  21. TCK9001   Clock chip for the 8900B.
  22.           Supplies: 25.175, 28.322, 44.9, 36, 57.272, 65, 50.35, 40 MHz
  23.    
  24. TCK9002   Clock chip for the 8900C and later.
  25.           Supplies: 25.175, 28.322, 44.9, 36, 57.272, 65, 50.35, 40,
  26.                     88, 98, 118.8, 108 MHz
  27.  
  28. TCK9004   Clock chip for the 8900CL and later.
  29.           Supplies: 25.175, 28.322, 44.9, 36, 57.272, 65, 50.35, 40,
  30.                     88, 98, 118.8, 108, 72, 77, 80, 75 MHz
  31.  
  32.  
  33.    What are the specs for all the new chips??  (CX,CXi,CL,CXr,GUI...)
  34.  
  35.    The Trident 8800 chips have a problem with 256 color modes,
  36.    as they always double the pixels output in 256 color mode.
  37.    Thus a 640x400 256 color mode (5Ch) actually uses a 1280x400
  38.    frame, requiring at least a multi sync monitor.
  39.    This problem is fixed on the 8900.
  40.  
  41. Apparently Trident BIOS version 3.xx or later on a 8900C will support Sierra
  42. HiColor DACs (SC11483 or SC11487). No check is made for the existence of such
  43. a DAC, the mode is just set as if it was present, resulting in 1024x480,
  44. 1280x480 and 1600x600 256color modes if an ordinary DAC is installed.
  45.  
  46.  
  47. 100h (R/W?): Microchannel ID low
  48. bit 0-7  Card ID bit 0-7
  49.  
  50. 101h (R/W?): Microchannel ID high
  51. bit 0-7  Card ID bit 8-15
  52.  
  53. 3C3h (R/W): Microchannel Video Subsystem Enable Register:
  54. bit 0  Enable Microchannel VGA if set
  55.  
  56. 3C4h index  Bh (R): Chip Version
  57. bit 0-7  Chip ID
  58.            1  = TR 8800BR
  59.            2  = TR 8800CS
  60.            3  = TR 8900B
  61.            4  = TR 8900C
  62.           13h = TR 8900C
  63.           23h = TR 9000
  64.           33h = TR 8900CL or TVGA 8900D
  65.           43h = TVGA9000i
  66.           53h = TR 8900CXr
  67.           63h = TLCD9100B
  68.           73h = TR GUI9420
  69.           83h = TR LX8200
  70.           93h = TR 9200CXi
  71.           A3h = TLCD9320
  72.           F3h = TR GUI9420
  73.  
  74. Note:  Writing to index Bh selects old mode registers.
  75.        Reading from index Bh selects new mode registers.
  76. Note:  Writing to this register in order to force old mode registers
  77.        should be done with two 8bit writes, not one 16bit write.
  78.  
  79. 3C4h index  Ch (R/W): Power Up Mode Register 1
  80. bit   0  Fast Decode if set, Slow if clear
  81.       1  (9000 & LCD9100) If clear 0 Wait states,
  82.               if set bit 6 determines number of wait states.
  83.       4  If set enable post port at 3C3h, at 46E8h if clear
  84.       5  (8900C)  If set enables access to upper 512KB in non-paged modes
  85.                   Must be clear in text and CGA modes.
  86.          (9000 & LCD9100) If set uses 2 DRAMs, 4 if clear
  87.       6  (9000 & LCD9100) If bit 1 is clear this bit determines the number
  88.               of wait states. If set 2 Wait states, 1 if clear.
  89.     5-6  (88xx and 89xx) 0=256K chip, 1 = 2 DRAMs, 2 = 4 DRAMs, 3 = 8 DRAMs.
  90.       7  If set VRAM bus setting is 16, 8 if clear
  91. Note: This register can only be changed if New Mode Control 1 (3C4h index 0Eh)
  92.       bit 7 is set
  93.  
  94. 3C4h index  Dh (R/W): Old Mode Control 2
  95. bit 0-2  Emulation mode
  96.          0=VGA, 3=EGA, 5=CGA,MDA,Hercules
  97.       4  Enable Paging mode if set. If set the CRTC offset (3d4h index 13h)
  98.          should be multiplied by 2, and the Display Start Address (3d4h index
  99.          0Ch & 0Dh + 1Eh bit 5 and 3C4h Old Mode index 0Eh bit 0) is in units
  100.          of 8 bytes rather than 4 (256 color modes only).
  101.       5  DRAM clock enabled if set.
  102.  
  103. 3C4h index  Dh (R/W): New Mode Control 2                          (not 8800BR)
  104. bit   0  Clock Select bit 2. Bits 0-1 are in 3CCh bits 2-3.
  105.          Clock table:
  106.             0: 25.275   1: 28.322    2:  44.9      3:  36
  107.             4: 57.272   5: 65        6:  50.35     7:  40
  108.             8: 88       9: 98       10: 118.8     11: 108
  109.            12: 72      13: 77       14: 80        15: 75
  110.          For the 8800 and 8900B only the first 8 clocks are available.
  111.     1-2  Divide pixel clock by: 0=1, 1=2, 2=4, 3=1.5
  112.       6  (9xxx) Clock Select bit 3. See bit 0
  113. Note: The old/new Mode Control 1/2 registers are selected by
  114.       reading and writing the Chip version register (index Bh).
  115.  
  116. 3C4h index  Eh (R/W): Old Mode Control 1
  117. bit   0  (8900 Only) CRTC Address bit 17. Apparently this determines in which
  118.          part of memory the display is, as the display can not cross this
  119.          line, but can be on either side. Note that in Paged Mode (3C4h Old
  120.          Mode index 0Dh bit 4 is set) this bit has no effect as 17 bits can
  121.          span the entire 1MB range.
  122.     1-2  128kb Bank number (0-3)
  123.       3  16 bit video interface if set
  124.       4  (8900C, CL, CXr, GUI9420) Clock Select bit 3.
  125.          See New mode 3C4h index Dh bit 0.
  126.  
  127. 3C4h index  Eh (R/W): New Mode Control 1                          (not 8800BR)
  128. bit 0-3  64k Bank nbr. When writing to this field XOR with 02h, when reading
  129.          from this field no XOR is needed. This is used for Trident detection.
  130.          In planar modes bits 0 and 2 form a two bit field.
  131.     4-6  Reserved
  132.       7  Must be set to update index 0Ch ???
  133. Note: The old/new Mode Control 1/2 registers are selected by
  134.       reading and writing the Chip version register (index Bh).
  135.  
  136. 3C4h index  Fh (R/W): Power-up Mode 2
  137. bit 0-3  Switch settings
  138.       4  Bus type
  139.       5  If set I/O address are at 3xxh, else at 2xxh.
  140.       6  Enable ON-Card ROM if set
  141.       7  16 bit ROM access enabled if set
  142.  
  143. 3d4h index 1Eh (R/W): Module Testing Register
  144. bit 2  Vertical interlace if set
  145.        In interlaced modes the CRTC offset (3d4h index 13h) is the number of
  146.        bytes in TWO scanlines. Note that in interlaced modes the line doubling
  147.        caused by index 9 bits 0-4,7 is unlikely to work, as the (even,odd)
  148.        linepair is repeated rather than each individual line causing stripes.
  149.     3  If set Load fonts from Bottom, from top if clear
  150.     4  If set the display wraps back to line 0 when the line counter reaches
  151.        512.
  152.     5  CRTC starting address bit 16
  153.     7  (8900 Only) Host address bit 16. If clear bit 5 has no effect.
  154.        This does not affect 3C4h Old Mode index 0Eh bit 0.
  155.  
  156. 3d4h index 1Fh (R/W): Software Programming Register  (8900 Only)
  157. bit 0-1  (8800, 8900, 9000) Memory size  0=256k, 1=512k, 2=768k, 3=1M.
  158.     0-2  (8900CL, 8900CXr, GUI9420) Memory size  0=256k, 1=512k, 2=768k,
  159.            3=1M, 4=256k, 5=512k, 6=768k, 7=2M.
  160.  
  161. 3d4h index 1Fh (R/W): Scratch Register               (8800 Only)
  162. bit 0  Paged memory mode in effect
  163.     1  Memory size  0=256k, 1=512k
  164.     2  Analog monitor attached
  165.     3  44.9 MHz oscillator present
  166. Note: This register is set by software.
  167.  
  168. 3d4h index 22h (R): CPU Latch Read Back
  169. bit 0-7  Data Latch value for current read plane.
  170.  
  171. 3d4h index 24h (R): Attribute State Read Back
  172. bit 0-6  Reserved
  173.       7  Attribute Controller State
  174.          If set the next write to 3C0h will go to the data
  175.          register, if clear to the index register.
  176.  
  177. 3d4h index 26h (R): Attribute Index Read Back
  178. bit 0-7  Attribute Index Register value
  179.  
  180. 3d4h index 27h (R/W):                                          (8900CL/D only)
  181. bit 0-1  Display Start Address bit 17-18. Bit 16 is in index 1Eh bit 5.
  182.  
  183. 3d4h index 29h (R/W):                                          (8900CL/D only)
  184. bit   0  Connected to the RS2 input on the DAC ?.
  185.  
  186. 3D8h (R/W):                                                    (8900CL/D only)
  187. bit 0-4  Bank number in 64k units. 3C4h index Eh appears still to work.
  188.  
  189.  
  190. Note: on the 8900CL, 9000i, 8900CXr, GUI9420, TVGA9200CXi and TLCD9320
  191.       3d4h index 20h, 23h, 25h, 28h-2Ch appears to be used for an 8 byte FIFO?
  192.  
  193.  
  194. 46E8h (R):  Video Subsystem Enable Register
  195. bit 3  Enable VGA if set
  196.  
  197.  
  198.  
  199.  
  200.   Bank selection:
  201.  
  202.     Trident VGAs (except 8800BR) can operate in 2 different modes:
  203.  
  204.     Old Mode, with a 128k window to display memory at A000h - BFFFh
  205.     and New Mode, with a 64k window to display memory at A000h - AFFFh.
  206.     Old/New mode is selected by reading/writing the Chip Version Register
  207.     (3C4h index 0Bh).
  208.     Each mode has its own registers at 3C4h index 0Dh and 0Eh.
  209.  
  210.  
  211.   ID Trident VGA:
  212.  
  213.     wrinx($3C4,$B,0);    {Force old_mode_registers}
  214.     chp:=inp($3C5);      {Read chip ID and switch to new_mode_registers}
  215.     old:=rdinx($3C4,$E);
  216.     outp($3C5,0);
  217.     value:=inp($3C5) and $F;
  218.     outp($3C5,old);
  219.  
  220.     if value=2 then
  221.     begin
  222.       outp($3C5,old xor 2);
  223.       case chp of
  224.         1:Trident TR8800BR;
  225.         2:Trident TR8800CS;
  226.         3:Trident TR8900;
  227.     4,$13:Trident TR8900C;
  228.       $23:Trident TR9000;
  229.       $33:Trident TR8900CL or D;
  230.       $43:Trident TR9000i;
  231.       $53:Trident TR8900CXr
  232.       $63:Trident LCD9100B;
  233.       $83:Trident LX8200;
  234.       $93:Trident TVGA9200CXi
  235.       $A3:Trident LCD9320;
  236.   $73,$F3:Trident GUI9420;
  237.       end;
  238.     end
  239.     else if (chp=1) and testinx2($3C4,$E,6) then
  240.            Trident TVGA 8800BR     {Haven't tested this yet}
  241.  
  242.   Video Modes:
  243.     50h  T    80   30  16  (8x16)
  244.     51h  T    80   43  16  (8x11)
  245.     52h  T    80   60  16  (8x8)
  246.     53h  T   132   25  16  (8x14)
  247.     54h  T   132   30  16  (8x16)
  248.     55h  T   132   43  16  (8x11)
  249.     56h  T   132   60  16  (8x8)
  250.     57h  T   132   25  16  (9x14)
  251.     58h  T   132   30  16  (9x16)
  252.     59h  T   132   43  16  (9x11)
  253.     5Ah  T   132   60  16  (9x8)
  254.     5Bh  G   800  600  16  PL4
  255.     5Ch  G   640  400 256  P8
  256.     5Dh  G   640  480 256  P8
  257.     5Eh  G   800  600 256  P8      (Undocumented on 8800)
  258.     5Fh  G  1024  768  16  PL4
  259.     60h  G  1024  768   4          8900 Only
  260.     61h  G   768 1024  16  PL4
  261.     62h  G  1024  768 256  P8      8900 Only
  262.     63h  G  1280 1024  16  PL4     Which chip/BIOS rev ?
  263.     64h  G  1280 1024 256  P8      8900CL only
  264.     6Ah  G   800  600  16  PL4     Newer boards
  265.     6Bh  G   320  200 16m  P24     TVGA9000i
  266.     6Ch  G   640  480 16m  P24     8900CL only
  267.     6Dh  G   800  600 16m  P24     8900CL only
  268.  
  269.     70h  G   512  480 32K  P15     89xx with Sierra DAC 
  270.     71h  G   512  480 64K  P16     89xx with Sierra DAC 
  271.     74h  G   640  480 32K  P15     89xx with Sierra DAC 
  272.     75h  G   640  480 64K  P16     89xx with Sierra DAC 
  273.     76h  G   800  600 32K  P15     89xx with Sierra DAC 
  274.     77h  G   800  600 64K  P16     89xx with Sierra DAC 
  275.     78h  G  1024  768 32K  P15     8900CL with Sierra DAC
  276.     79h  G  1024  768 64K  P16     8900CL with Sierra DAC
  277.     7Eh  G   320  200 32K  P15     TVGA9000i
  278.     7Fh  G   320  200 64K  P16     TVGA9000i
  279.  
  280.     ZyMOS POACH51 modes:
  281.  
  282.     60h  G   960  720  16  PL4
  283.     61h  G  1280  640  16  PL4
  284.     62h  G   512  512 256  P8
  285.     63h  G   720  540  16  PL4
  286.     64h  G   720  540 256  P8
  287.     6Ah  G   800  600  16  PL4
  288.  
  289.  
  290.   Everex Viewpoint use Everex modes.
  291.  
  292.  
  293. Note: The TVGA9000i has an on-chip DAC with 32k/64k capability.
  294.       The BIOS on the card I have (BIOS version D3.51) doesn't
  295.       seem to handle the Hi/True color modes correctly.
  296.       I have managed to get the 320x200 32k/64k modes working by programming
  297.       the DAC command register directly, but the 512x480 modes and the 320x200
  298.       16m mode still doesn't work
  299.  
  300.  
  301.  
  302.   Bios extensions:
  303.  
  304. ----------1000-------------------------------
  305. INT 10 - VIDEO - SET VIDEO MODE
  306.         AH = 00h
  307.         AL = mode number
  308. Return: AH = Status of call:  (Trident Super VGA Chips)
  309.  
  310.                     Trident 8800                Trident 8900
  311.              00h   Successful                      do
  312.              80h   Fail. Wrong switch              do
  313.              81h   Insufficient Video              do
  314.                    Memory.
  315.              82h   The 36MHz crystal            Mode not supported
  316.                    cannot support the mode
  317.              83h   The 40MHz crystal            Mode not supported
  318.                    cannot support the mode.
  319.              84h   The 44.9MHz crystal          Mode not supported
  320.                    cannot support the mode.
  321.              85h   Dead or no crystal
  322.              86h                               Wrong CRTC base for dual screen
  323.              87h                               Text mode not supported
  324. ----------1012-BL11------------------------------
  325. INT 10 - VIDEO - Trident BIOS - GET BIOS INFO
  326.         AH = 12h
  327.         BL = 11h
  328. Return: AL = 12h if function supported
  329.         ES:BP -> BIOS info structure:
  330.                  Offset:  Size:   Description:
  331.                    00h    BYTE    ??? (=0)
  332.                    01h    BYTE    OEM Code (00h for original Trident)
  333.                    02h    WORD    ID ?? (1073h for 8800BR, 1074h for 8800CS,
  334.                                    1090h for 8900C or 9000i
  335.                    04h  8 BYTEs   BIOS date ('mm/dd/yy')
  336.                    0Ch    WORD    ???
  337.                    0Eh  8 BYTEs   BIOS Version (' C3-128 ', ' C3-129 ',
  338.                                     ' D3.51  ').
  339. ----------1012-BL12------------------------------
  340. INT 10 - VIDEO - Trident BIOS - GET VIDEO RAM SIZE
  341.         AH = 12h
  342.         BL = 12h
  343. Return: AL = 12h if function supported
  344.         AH = number of 256K banks of RAM installed
  345. ----------101200-BL14----------------------------
  346. INT 10 - VIDEO - Trident LOCKFIFO - Get FIFO state
  347.         AX = 1200h
  348.         BH = 14h
  349. Return: CX = FIFO state
  350. Note: Implemented by the LOCKFIFO.COM utility
  351. ----------101201-BL14----------------------------
  352. INT 10 - VIDEO - Trident LOCKFIFO - Get FIFO state
  353.         AX = 1201h
  354.         BH = 14h
  355.         CX = FIFO state (0..FFh, FFh = disabled)
  356. Note: Implemented by the LOCKFIFO.COM utility
  357.